#ifndef NctiRenderMarkerItem_H
#define NctiRenderMarkerItem_H
#include "NctiRenderGeometryItem.h"

namespace NCTI
{
    /**
     * @brief Point Geometry Render Object
     */
	class DECL_NCTI_RENDER NctiRenderMarkerItem : public NctiRenderGeometryItem
	{
		NCTI_RENDER_FUNCTIONS(NctiRenderMarkerItem)
	public:
        /**
       * @brief construct
       */
        NctiRenderMarkerItem();
        /**
         * @brief construct
         * @param[in] i_pt Marker position
         */
		NctiRenderMarkerItem(const NctiPosition& i_pt);
        /**
         * @brief get marker position
         */
		NctiPosition GetPosition(int)const override;

        /**
         * @brief set marker position
         */
        void SetVertexBuffer(const NctiPosition& i_pt);

        /**
         * @brief completion virtual function
         * @return 1. means 1 point
         */
        Ncti_Size GetGeomCount()const override;

        /**
         * @brief Get bounding box.completion virtual function
         */
		bool GetBox(NctiViewerRenderer* i_pViewerRenderer, NctiPosition& o_Max, NctiPosition& o_Min)override;

        /**
         * @brief clone self.completion virtual function
         */
		NctiRenderGeometryItem* clone() override;
        void SetPosition(const NctiPosition& i_pt);
	};
}
#endif // !NctiRenderMarkerItem_H
